package com.he.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.he.domain.dto.ConditionDTO;
import com.he.domain.dto.PageResult;
import com.he.domain.dto.RoleDTO;
import com.he.domain.dto.RoleStatusDTO;
import com.he.domain.vo.RoleVO;
import com.he.entity.Role;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author He
 * @version 1.0
 * @Date 2023/10/2 16:06
 * @Desc
 */
@Service
public interface RoleService extends IService<Role> {


    /**
     * 查看角色列表
     *
     * @param condition 查询条件
     * @return {@link RoleVO} 角色列表
     */
    PageResult<RoleVO> listRoleVO(ConditionDTO condition);

    /**
     * 修改角色状态
     *
     * @param  roleStatus 角色状态信息
     */
    void updateRoleStatus(RoleStatusDTO roleStatus);

    /**
     * 删除角色
     *
     * @param roleIdList 角色id集合
     */
    void deleteRole(List<String> roleIdList);

    /**
     * 添加角色
     *
     * @param role 角色信息
     */
    void addRole(RoleDTO role);

    void updateRole(RoleDTO role);

    List<Integer> listRoleMenuTree(String roleId);
}
